Bildschirmauflösung ermitteln mit VBScript
In diesem Artikel zeige ich dir, wie du die Bildschirmauflösung eines Monitors ermitteln kannst. Verwendet wird dazu VBScript eingebettet in ABAP. Um an die gewünschten Informationen zu gelangen, wird WMI – Windows Management Instrumentation bemüht.
Die Ermittlung der Standardauflösung mit ABAP-Mitteln ist hier beschrieben: Bildschirmauflösung des Computers ermitteln
Vielen Dank an Stefan Schnell, der wieder mal beweist, dass der SAPGUI nicht die Grenze ist…
Win32_VideoController
Das unten stehende Programm erzeugt ein VBScript mit dessen Hilfe Informationen des Windows-Videocontrollers ausgelesen werden. Für jedes gefundene Element wird ein Popup erzeugt:
Info
Leider berücksichtigt der Code nicht mehrere angeschlossene Monitore. Für weiterführende Hinweise diesbezüglich bin ich dankbar.
Allerdings: Selbst wenn man weiß, wie viele Monitore, mit welcher Auflösung angeschlossen sind, weiß man immer noch nicht, auf welchem Monitor gerade der SAPGUI-Modus angezeigt wird.
Weiterführende Links
How to use Windows Management Instrumentation (WMI) Inside ABAP
How to use Windows PowerShell Script inside ABAP
WMI – Windows Management Instrumentation
Code
CONSTANTS crlf(2) TYPE c VALUE cl_abap_char_utilities=>cr_lf. DATA scriptctrl TYPE ole2_object. DATA cmd TYPE string. CREATE OBJECT scriptctrl 'MSScriptControl.ScriptControl'. IF sy-subrc = 0. SET PROPERTY OF scriptctrl 'AllowUI' = 1. SET PROPERTY OF scriptctrl 'Language' = 'VBScript'. cmd = 'Set oWMI = GetObject("Winmgmts:\\.\root\cimv2")' && crlf && 'Set colItems = oWMI.ExecQuery("Select * from Win32_VideoController",,48)' && crlf && 'For Each oItem in colItems ' && crlf && ' intHorizontal = oItem.CurrentHorizontalResolution' && crlf && ' intVertical = oItem.CurrentVerticalResolution' && crlf && ' chrCaption = oItem.Caption' && crlf && ' chrDeviceID = oItem.DeviceID' && crlf && ' MsgBox chrDeviceID & "/" & chrCaption & ": " & intHorizontal & ":" & intVertical' && crlf && 'Next'. CALL METHOD OF scriptctrl 'ExecuteStatement' EXPORTING #1 = cmd. FREE OBJECT scriptctrl. ENDIF.
- Interview mit Björn Schulz (Software-Heroes.com) - 3. September 2024
- Daten aus ALV ermitteln - 3. September 2024
- So lange es den SAPGUI noch gibt… - 27. Juni 2024